package id.co.rho.scoring.cid.shared.model;

import com.extjs.gxt.ui.client.core.FastMap;
import com.extjs.gxt.ui.client.data.ModelData;
import com.extjs.gxt.ui.client.data.RpcMap;

import java.io.Serializable;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

/**
 * BaseDTOModel digunakan untuk RPC base yang berkaitan dengan ModelData.
 * BaseModel dan BaseModelDaata tidak digunakan karena menyebabkan RPC error
 * sampai javadoc ini di buat. Error tersebut berkaitan dengan tipe Map yang
 * dipakai pada kedua class tersebut yaitu RpcMap
 */
//TODO: enhance method yang implement dari ModelData ( dapat di contoh dari BaseModelData)
public class BaseDTOModel implements ModelData, Serializable {
    HashMap map = new HashMap();

    public BaseDTOModel() {
    }

    @Override
    public <X> X get(String property) {
        return (X) map.get(property);
    }

    @Override
    public Map<String, Object> getProperties() {
        return map;
    }

    @Override
    public Collection<String> getPropertyNames() {
        return map.keySet();
    }

    @Override
    public <X> X remove(String property) {
        return (X) map.remove(property);
    }

    @Override
    public <X> X set(String property, X value) {
        return (X) map.put(property, value);
    }
}